
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package mx.edu.itschapala.sistemas.septimo.control;

import java.util.ArrayList;
import java.util.List;
import mx.edu.itschapala.sistemas.septimo.modelo.Cliente;
import mx.edu.itschapala.sistemas.septimo.modelo.Producto;
import mx.edu.itschapala.sistemas.septimo.vista.enumeracion.TipoBusqueda;

/**
 *
 * @author alex
 */
public class CleinteLnLista implements ClienteLnLocal {
    private Cliente cliente;
    private List<Cliente> lista = new ArrayList<Cliente>();

    @Override
    public void registrar(Cliente cliente) {
        lista.add(cliente);
    }

    @Override
    public void modificar(Cliente cliente) {
          Cliente tmp = buscarPorId(cliente.getId());
        if (tmp != null) {
            lista.remove(tmp);
            lista.add(cliente);
        }
    }

    @Override
    public void eliminar(Cliente cliente) {
         Cliente tmp = buscarPorId(cliente.getId());
        if (tmp != null) {
            lista.remove(tmp);
        }
    }

    @Override
    public Cliente buscarPorId(int id) {
         Cliente tmp = null;
        for (Cliente c : lista) {
            if (c.getId()== id) {
                tmp = c;
            }
              
        }
    return tmp;
    }

    @Override
    public List<Cliente> getTodos() {
        return lista;
    }

    @Override
    public List<Cliente> getPorNombre(String Nombre, TipoBusqueda Criterio) {
        List<Cliente> tmp = new ArrayList<Cliente>();
        switch (Criterio) {
            case INICIAR:
                for (Cliente p : lista) {
                    if (p.getNombre().startsWith(Nombre)) {
                        tmp.add(p);
                    }
                }
                break;
            case CONTIENE:
                for (Cliente p : lista) {
                    if (p.getNombre().startsWith(Nombre)) {
                        tmp.add(p);
                    }
                }
                break;

        }
        return tmp;
        
    }
    
}
